package com.mmd.core.utils;

import com.mmd.core.function.DataOtherTransition;

import java.util.function.Function;

public class FunctionUtils {
    /**
     * 将一个类型转为另一个类型
     * @param data 参数
     * @param function 处理方式
     * @param <T> 类型
     */
    public static <T,R> R map(T data, Function<T, R> function){
        return function.apply(data);
    }

    /**
     * 将一个参数根据另一个参数转换为另一个参数
     * @param data1 参数
     * @param data2 参数
     * @param function 处理方式
     * @param <C> 类型
     */
    public static <A,B,C> C map(A data1, B data2, DataOtherTransition<A,B,C> function){
        return function.apply(data1,data2);
    }
}